<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
</html>
<script>
    //说一说new操作符具体干了什么
        /**
         * 在JavaScript中new操作符用于创建了一个给定构造函数的实例对象
         * 在创建一个新的实例的时候，必须使用 new 操作符。而使用 new 操作符会经历以下 4 个步骤：
                1.创建一个新对象
                2.将构造函数的作用域赋值给新对象（this 指向新对象）
                3.执行构造函数中的代码（给新对象添加属性）
                4.对构造函数有返回值的做判断处理 如果是基本类型则忽略 如果是数组或对象则返回数组或对象 new就失效了
            new 实现了什么功能：
                访问到了构造函数里的属性和构造函数 prototype 里的属性
        */
    //    function fun (name,age){
    //         this.name=name
    //         this.age=age
    //    }
    //    function created(fn,...rest){
    //         var obj={}
    //         obj._proto_=fn.prototype
    //         var rules=fn.apply(obj,rest)
    //         return rules instanceof Object ?rules :obj
    //    }
    //    console.log(created(fun,'张三',18));


    //javascript原型，原型链的理解
        /**
         * 
         * 1. prototype 显式原型
           每个函数都有一个 prototype 属性，被称为显式原型，包含了这个构造函数公共的方法

          2. _ proto_ 隐式原型
            每个实例对象都会有_ proto 属性,其被称为隐式原型
            每一个实例对象的隐式原型 proto _属性指向自身构造函数的显式原 型 prototype

          3.  constructor
            每个 prototype 原型都有一个 constructor 属性，指向它关联的构造函数。

           4. 原型链
            获取对象属性或者方法的时候，如果对象本身没有这个属性，那就会去他的原型_ proto 上去找，
            如果还查不到，就去找原型的原型，一直找到最顶层(Object.prototype)为止。
            Object.prototype 对象也有 proto _属性值为 null。

            什么是原型链？原型链解决的是什么问题？
            1）原型链解决的主要是继承问题
            2）每个对象都有一个原型对象，通过 proto 指针指向其原型对象，并继承方法和属性，
            同时原型对象也拥有原型，这样一层一层，最终指向 null(Object.proptotype.__proto__指向的是null)。
            这种关系被称为原型链(prototype chain)，通过原型链一个对象可以拥有定义在其他对象中的属性和方法

        */

    //如何实现上拉加载下拉刷新
            /**
             * 下拉刷新和上拉加载两种交互方式通常出现在移动端 和pc端的分页有点像只是交互形式不同
             * 上拉加载
             * 上拉加载的本质是页面触底，或者快要触底的动作 判断页面触底要先了解几个属性：
             * scrollTop滚动视窗的高度距离window顶部的距离，会随着往上滚动不断增加初始值为0
             * (柯莱特害死)clientheight：他表示的是一个定值，表示屏幕可视区域的高度
             * scrollheight：
             * 综上得出一个公式：scrollTop + clientHeight >= scrollHeight
             * 下拉刷新：
             * 下拉刷新就是用户下拉时触发的动作
             * 下拉刷新主要分三步：
             * 监听原生事件touchstart（他吃四到特）事件记录初始值
             * 监听原生时间touchmove事件
             * 监听touchend事件若元素达到最大值则触发callback，同时将translateY重设0
            */
</script>